/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package util;

import Datos.Transacciones;
import Negocios.*;
import java.util.StringTokenizer;
import org.json.simple.JSONObject;
import org.json.simple.JSONValue;

/**
 *
 * @author johnny
 */
public class Proceso {

    public String procesaMensaje(String msg) {
        Transacciones trans = new Transacciones();
        String respuesta = "";
        int accion = Integer.parseInt(msg.substring(0, 1));
        String jsonTexto = msg.substring(2, msg.length());
        Object obj = JSONValue.parse(jsonTexto);
        JSONObject json = (JSONObject) obj;
        switch (accion) {
            case 1:
                String Nick = json.get("Nick").toString();
                String Password = json.get("Password").toString();

                if (trans.cuentaRegistros("Usuario", "Nick='" + Nick + "'" + "and Password='" + Password + "'") > 0) {
                    return ("Logueado");
                } else {
                    return ("noLogueado");
                }

            case 2://crear usuario
                Usuario objUs = new Usuario();
                objUs.setNick(json.get("Nick").toString());
                objUs.setPassword(json.get("Password").toString());
                objUs.setNombre(json.get("Nombre").toString());
                objUs.setApellido(json.get("Apellido").toString());
                objUs.setDireccion(json.get("Direccion").toString());
                objUs.setTelefono(json.get("Telefono").toString());
                objUs.setFechaCreacion(json.get("fechaCreacion").toString());

                if (trans.cuentaRegistros("Usuario", "Nick='" + objUs.getNick() + "'") > 0) {
                    return ("Ya existe un usuario con esa direccion de correo\nPor favor elija otra");
                } else if (trans.insertar("Usuario", objUs, 7, 0)) {
                    return "0";
                } else {
                    return "No se pudo crear el usuario debido a un problema en el servidor";
                }
            case 3:
                Correo objCor = new Correo();
                objCor.setNick(json.get("nick").toString());
                objCor.setAsunto(json.get("asunto").toString());
                objCor.setContenido(json.get("mensaje").toString());
                objCor.setFecha(json.get("fecha").toString());
                objCor.setHora(json.get("hora").toString());
                objCor.setAdjunos(json.get("adjuntos").toString());
                String para = json.get("para").toString();
                objCor.setPara(para);
                if (trans.insertar("Correo", objCor, 8, 1)) {
                    StringTokenizer str = new StringTokenizer(para, ",");
                    String destinatario = "";
                    int idCorreo = trans.cuentaRegistros("Correo", null);
                    while (true) {
                        try {
                            destinatario = str.nextToken();
                            if (destinatario != null) {
                                Destinatario dest = new Destinatario();
                                dest.setIdCorreo(idCorreo);
                                dest.setNick(destinatario);
                                dest.setEstado(0);
                                trans.insertar("Destinatario", dest, 3, 0);
                            }

                        } catch (Exception e) {
                            break;
                        }
                    }
                    return "1";
                } else {
                    return "No se pudo enviar el mensaje";
                }
            case 4:
                Destinatario  objDest = new Destinatario();
                objDest.setNick(json.get("nick").toString());
                objDest.setIdCorreo(Integer.parseInt(json.get("idCorreo").toString()));
                objDest.setEstado(2);
                if(trans.modificar("Destinatario", objDest, 3, "idCorreo="+objDest.getIdCorreo()+" and Nick='"+objDest.getNick()+"'"))
                {
                    return "1";
                }else
                {
                    return "No se pudo eliminar el mensaje";
                }
            case 5:
                int idCorreo = trans.cuentaRegistros("Correo", null);
                String nombre=json.get("nombre").toString();
                int idArchivo=Integer.parseInt(json.get("idArchivo").toString());
                String path="/home/johnny/envios/arch"+"_"+idCorreo+"_"+idArchivo+"_"+nombre;
                archivo.nombre=path;
                CArchivo arch= new CArchivo();
                arch.setIdArchivo(idArchivo);
                arch.setIdCorreo(idCorreo);
                arch.setNombre(nombre);
                arch.setPath(path);
                trans.insertar("Archivo", arch, 4, 0);
                break ;
        }
        return "1";
    }
}